<?php

class Chat {

    private $nome;
    private $id_atendente;
    private $mensagem;
    private $tempoLimite;

    public function getId_atendente() {
        return $this->id_atendente;
    }

    public function setId_atendente($id_atendente) {
        $this->id_atendente = $id_atendente;
    }

    public function __construct() {
        $this->tempoLimite = TEMPO_LIMITE;
    }

    public function getNome() {
        return $this->nome;
    }

    public function setNome($nome) {
        $this->nome = $nome;
    }

    public function getMensagem() {
        return $this->mensagem;
    }

    public function setMensagem($mensagem) {
        $this->mensagem = $mensagem;
    }

    public function getTempoLimite() {
        return $this->tempoLimite;
    }

    public function setTempoLimite($tempoLimite) {
        $this->tempoLimite = $tempoLimite;
    }

    public function inserir() {
        $strSQL = "INSERT INTO chat SET nome = ?, mensagem = ?, datahora = now()";
        $stmt = BD::getConn()->prepare($strSQL);
        $data = array($this->getNome(), $this->getMensagem());
        return $stmt->execute($data);
    }

    public function existeNome() {
        $strSQL = "SELECT COUNT(nome) FROM chat WHERE nome = ? ";
        $stmt = BD::getConn()->prepare($strSQL);
        $data = array($this->getNome());
        $stmt->execute($data);
        return ($stmt->fetchColumn() > 0) ? true : false;
    }

    public function excluir() {
        $strSQL = "DELETE FROM chat WHERE DATE_ADD(datahora, INTERVAL {$this->tempoLimite} DAY) < NOW()";
        $stmt = BD::getConn()->query($strSQL);
    }

    public function listar() {
        $strSQL = "SELECT * FROM chat ORDER BY id DESC";
        return BD::getConn()->query($strSQL);
    }
    
    
    public function listarClientexAtendimento($chat) {
        $this->id_atendente = $chat->getId_atendente();
        $this->nome = $chat->getNome();
        $strSQL = "SELECT * FROM chat  WHERE id_atendimento = '$this->id_atendente' AND cliente = '$this->nome'  ORDER BY id DESC";
        return BD::getConn()->query($strSQL);
    }
    

    public function atendenteAtivo() {
        $strSQL = "SELECT * FROM atendente WHERE status = 'ativo' ";
        return BD::getConn()->query($strSQL);
    }

    public function verificaAtendenteDisponivel($atendentes) {
        return count($atendentes);
    }
    
    public function alteraDisponibilidadeAtendente($atendente) {
        $id = $atendente->getId();
        $strSQL = "UPDATE atendente SET status = 'ocupado' WHERE id = '$id' ";
        $stmt = BD::getConn()->query($strSQL);
    }
    
    public function novoChat(){
        
    }
    

}

?>